Compiler-Enforced Cache Coherence Using a Functional Language
نویسندگان
چکیده
The cost of hardware cache-coherence, both in terms of execution delay and operational cost, is substantial for scalable systems. Fortunately, compiler generated cache management can reduce program seri-alization due to cache-contention; increase execution performance; and reduce the cost of parallel systems by eliminating the need for more expensive hardware support. In this paper, we use the Sisal functional language system as a vehicle to implement and investigate automatic, compiler based cache management. We describe our implementation of Sisal for the IBM Power/4. The Power/4, brieey available as a product, represents an early attempt to build a shared-memory machine that relies strictly on the language system for cache-coherence. We discuss the issues associated with deterministic execution and program correctness on a system without hardware coherence, and demonstrate how Sisal (as a functional language) is able to address those issues.
منابع مشابه
Hardware Support for Shared-memory Concurrency: Reconciling Programmability with Performance
With regard to hardware support for shared-memory concurrency, an inherent trade-off between programmability and performance is presumed. For instance, the most intuitive memory consistency model, sequential consistency (SC), is presumed to be too expensive to support; likewise primitive synchronization instructions such as memory fences and atomic read-modify writes (RMWs) are costly in curren...
متن کاملCache Coherent Shared Memory under Split - C CS 258 , Spring 1999 Final Report
Split-C is a single program, multiple data (SPMD) programming language. Split-C provides the ability to use a shared address space abstraction on a distributed shared memory (DSM) system, such as a network of workstations (NOW). The existing Split-C compiler translates all references to shared variables owned by another processor into network transactions. We implement SWCC-Split-C, a modified ...
متن کاملCompiler Analysis for Cache Coherence: Interprocedural Array Data-Flow Analysis and Its Impact on Cache Performance
ÐIn this paper, we present compiler algorithms for detecting references to stale data in shared-memory multiprocessors. The algorithm consists of two key analysis techniques, stale reference detection and locality preserving analysis. While the stale reference detection finds the memory reference patterns that may violate cache coherence, the locality preserving analysis minimizes the number of...
متن کاملTo appear in the 23 rd ACM Annual
In this paper, we study a hardware-supported, compiler-directed (HSCD) cache coherence scheme, which can be implemented on a large-scale multiprocessor using oo-the-shelf microprocessors, such as the Cray T3D. It can be adapted to various cache organizations, including multi-word cache lines and byte-addressable architectures. Several system related issues, including critical sections, inter-th...
متن کاملAnalysis for Cache Coherence : Interprocedural Array Data - Flow Analysis and Its Impacts on Cache Performance 1
In this paper, we present compiler algorithms for detecting references to stale data in shared-memory multiprocessors. The algorithm consists of two key analysis techniques, stale reference detection and locality preserving analysis. While the stale reference detection nds the memory reference patterns that may violate cache coherence, the locality preserving analysis minimizes the number of su...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Scientific Programming
دوره 5 شماره
صفحات -
تاریخ انتشار 1996